
import service from "./request"
import { downloadXls } from '../tools/tools'
import { SERVER_ERROR } from '../config/config'

// 新用户列表
export function newUserList (data = {}) {
  return service.post("/buryingPointSystem/retention/userRegister", data)
  .then((res: Ajax.AxiosResponse) => {
    return res.data
  })
  .catch(err => {
    console.error(err)
    return SERVER_ERROR
  })
}

// 新用户列表导出
export function newUserListExport (data = {}) {
  return service.post("/buryingPointSystem/retention/userRegister/export", data, {
    responseType: 'blob'
  })
  .then((res: Ajax.Download) => {
    downloadXls(res.data, res.headers.filename)
    return res.data
  })
  .catch(err => {
    console.error(err)
    return SERVER_ERROR
  })
}

// 活跃用户列表
export function activeUserList(data = {}) {
  return service.post("/buryingPointSystem/point/get/across/day/list", data).then((res: Ajax.AxiosResponse) => {
    return res.data
  })
  .catch(err => {
    console.error(err)
    return SERVER_ERROR
  })
}

// 活跃用户列表导出
export function activeUserListExport(data = {}) {
  return service.post("/buryingPointSystem/export/active/user/excel", data, {
    responseType: 'blob'
  }).then((res: Ajax.Download) => {
    downloadXls(res.data, res.headers.filename)
    return res.data
  })
  .catch(err => {
    console.error(err)
    return SERVER_ERROR
  })
}

// 留存率列表
export function retentionRateList(data = {}) {
  return service.post("/buryingPointSystem/retention/statistics", data)
  .then((res: Ajax.AxiosResponse) => {
    return res.data
  })
  .catch(err => {
    console.error(err)
    return SERVER_ERROR
  })
}

// 留存率列表导出
export function retentionRateListExport(data: request.param) {
  return service.post("/buryingPointSystem/retention/statisticsExcel/export", data, {
    responseType: 'blob'
  })
  .then((res: Ajax.Download) => {
    downloadXls(res.data, res.headers.filename)
    return res.data
  })
  .catch(err => {
    console.error(err)
    return SERVER_ERROR
  })
}

// 使用时长列表
export function useDurationList(data = {}) {
  return service.post("/buryingPointSystem/point/get/times/list", data)
  .then((res: Ajax.AxiosResponse) => {
    return res.data
  })
  .catch(err => {
    console.error(err)
    return SERVER_ERROR
  })
}

// 使用时长列表导出
export function useDurationListExport(data = {}) {
  return service.post("/buryingPointSystem/export/active/time/excel", data, {
    responseType: 'blob'
  })
  .then((res: Ajax.Download) => {
    downloadXls(res.data, res.headers.filename)
    return res.data
  })
  .catch(err => {
    console.error(err)
    return SERVER_ERROR
  })
}

// 下拉框数据
export function singSelectList (data = {}) {
  return service.post("/buryingPointSystem/retention/singSelect", data)
  .then((res: Ajax.AxiosResponse) => {
    return res.data
  })
  .catch(err => {
    console.error(err)
    return SERVER_ERROR
  })
}

// 退出登录
export function serverLoginout (data = {}) {
  return service.post("/buryingPoint/logout", data).then((res: Ajax.AxiosResponse) => {
    return res.data
  })
  .catch(err => {
    console.error(err)
    return SERVER_ERROR
  })
}

// 登录
export function serverLogin (data = {}) {
  return service.post("/buryingPoint/login", data)
  .then((res: Ajax.AxiosResponse) => {
    return res.data
  })
  .catch(err => {
    console.error(err)
    return SERVER_ERROR
  })
}

// 充值类型列表
export function rechargSelectList (data = {}) {
  return service.post("/buryingPointSystem/recharge/getRechargeTypeList", data)
  .then((res: Ajax.AxiosResponse) => {
    return res.data
  })
  .catch(err => {
    console.error(err)
    return SERVER_ERROR
  })
}

// 充值订单
export function rechargOrder (data = {}) {
  // const testData = {
  //     "code":"200",
  //        "success":"true",
  //        "msg":"查询成功",
  //        "info":{
  //        "count":100,
  //         "retentionList":[
  //             {
  //               "cancelOrderCount":"0",
  //               "succesOrderCount":"2",
  //               "orderCount":"2",
  //               "dealMoney":"90",
  //               "rechargeTypeDes":"45元",
  //                 "peopleCount":"2",
  //               "statisticalTime":146969568128
  //             }
  //         ]
  //     }
  //    }
  return service.post("/buryingPointSystem/recharge/statistics", data)
  .then((res: Ajax.AxiosResponse) => {
    // return  testData
    return res.data
  })
  .catch(err => {
    console.error(err)
    return SERVER_ERROR
    // return testData
  })
}

// 充值订单导出
export function rechargOrderExport(data = {}) {
  return service.post("/buryingPointSystem/recharge/statisticsExcel/export", data, {
    responseType: 'blob'
  })
  .then((res: Ajax.Download) => {
    downloadXls(res.data, res.headers.filename)
    return res.data
  })
  .catch(err => {
    console.error(err)
    return SERVER_ERROR
  })
}

// 虚机时间卡列表
export function vmOrderTimeCardList (data = {}) {
  return service.post("/buryingPointSystem/buyVm/getVmCardTypeList", data)
  .then((res: Ajax.AxiosResponse) => {
    return res.data
  })
  .catch(err => {
    console.error(err)
    return SERVER_ERROR
  })
}

// 虚机机订单-桌面类型
export function vmOrderDesktopType (data = {}) {
  return service.post("/buryingPointSystem/buyVm/getVmTypeList", data)
  .then((res: Ajax.AxiosResponse) => {
    return res.data
  })
  .catch(err => {
    console.error(err)
    return SERVER_ERROR
  })
}

// 主机购买统计
export function vmOrderList (data = {}) {
  // const testData = {
  //   "code":"200",
  //      "success":"true",
  //      "msg":"查询成功",
  //      "info":{
  //      "count":100,
  //       "retentionList":[
  //       {

  //           "cardName":"7天卡",
  //           "buyCount":"3",
  //             "vmTypeDes":"云电脑",
  //           "statisticalTime":146969568128
  //       }
  //       ]
  //   }
  //  }
  return service.post("/buryingPointSystem/buyVm/statistics", data)
  .then((res: Ajax.AxiosResponse) => {
    // return testData
    return res.data
  })
  .catch(err => {
    console.error(err)
    return SERVER_ERROR
    // return testData
  })
}

// 充值订单导出
export function vmOrderListExport(data = {}) {
  return service.post("/buryingPointSystem/buyVm/statisticsExcel/export", data, {
    responseType: 'blob'
  })
  .then((res: Ajax.Download) => {
    downloadXls(res.data, res.headers.filename)
    return res.data
  })
  .catch(err => {
    console.error(err)
    return SERVER_ERROR
  })
}

// 用户区域列表
export function userAreaList (data = {}) {
  // const testData = {
  //   "code":"200",
  //   "success":"true",
  //   "msg":"查询成功",
  //   "info": {
  //     count: 1,
  //     "userAreaList": [
  //         {
  //           "cellStyleMap": {},
  //           "days": 1573660800000,
  //           "provinceCode": 330000000000,
  //           "townCode": 330100000000,
  //           "headCount": 1000,
  //           "date": null,
  //           "province": null,
  //           "town": null
  //         }
  //     ]
  //    }
  //   }
  return service.post("/buryingPointSystem/point/get/user/area/list", data)
  .then((res: Ajax.AxiosResponse) => {
    // return testData
    return res.data
  })
  .catch(err => {
    console.error(err)
    return SERVER_ERROR
    // return testData
  })
}

// 用户区域列表导出
export function userAreaListExport(data = {}) {
  return service.post("/buryingPointSystem/export/user/area/excel", data, {
    responseType: 'blob'
  })
  .then((res: Ajax.Download) => {
    downloadXls(res.data, res.headers.filename)
    return res.data
  })
  .catch(err => {
    console.error(err)
    return SERVER_ERROR
  })
}


// 预装软件列表
export function softWareSelectList (data = {}) {
  // const testData = {
  //   "code":"200",
  //   "success":"true",
  //   "msg":"查询成功",
  //   "info": {
  //     "count": 2,
  //     "softwareList": [
  //         {
  //             "id": 1,
  //             "name": "快播"
  //         },
  //         {
  //             "id": 2,
  //             "name": "迅雷"
  //         }
  //     ]
  //   }
  // }
  return service.post("/buryingPointSystem/software/softwareList/get", data)
  .then((res: Ajax.AxiosResponse) => {
    // return testData
    return res.data
  })
  .catch(err => {
    console.error(err)
    return SERVER_ERROR
    // return testData
  })
}


// 预装软件列表
export function prepareSoftwareList (data = {}) {
  // const testData = {
  //   "code":"200",
  //   "success":"true",
  //   "msg":"查询成功",
  //   "info": {
  //     "count": 2,
  //     "softwarePreinstallList": [
  //       {
  //         "id": 1,
  //         "date": "2019-11-14",
  //         "name":"快播",
  //         "useCount":100,
  //         "personCount":100
  //       },
  //        {
  //         "id": 2,
  //         "date": "2019-11-14",
  //         "name":"迅雷",
  //         "useCount":100,
  //         "personCount":100
  //       }
  //     ]
  //   }
  // }
  return service.post("/buryingPointSystem/software/softwarePreinstallList/get", data)
  .then((res: Ajax.AxiosResponse) => {
    // return testData
    return res.data
  })
  .catch(err => {
    console.error(err)
    return SERVER_ERROR
    // return testData
  })
}

// 预装软件列表导出
export function prepareSoftwareListExport(data = {}) {
  return service.post("/buryingPointSystem/software/exportSofeware/excel", data, {
    responseType: 'blob'
  })
  .then((res: Ajax.Download) => {
    downloadXls(res.data, res.headers.filename)
    return res.data
  })
  .catch(err => {
    console.error(err)
    return SERVER_ERROR
  })
}

// 自装软件列表 
export function selfSoftwareList (data = {}) {
  return service.post("/buryingPointSystem/software/selfInstall", data)
  .then((res: Ajax.AxiosResponse) => {
    return res.data
  })
  .catch(err => {
    console.error(err)
    return SERVER_ERROR
  })
}

// 自装软件列表导出
export function selfSoftwareListExport(data = {}) {
  return service.post("/buryingPointSystem/software/selfInstall/export", data, {
    responseType: 'blob'
  })
  .then((res: Ajax.Download) => {
    downloadXls(res.data, res.headers.filename)
    return res.data
  })
  .catch(err => {
    console.error(err)
    return SERVER_ERROR
  })
}



